<?php

// +----------------------------------------------------------------------
// | Library for ThinkAdmin
// +----------------------------------------------------------------------
// | 版权所有 2014~2025 ThinkAdmin [ thinkadmin.top ]
// +----------------------------------------------------------------------
// | 官方网站: https://thinkadmin.top
// +----------------------------------------------------------------------
// | 开源协议 ( https://mit-license.org )
// | 免费声明 ( https://thinkadmin.top/disclaimer )
// +----------------------------------------------------------------------
// | gitee 仓库地址 ：https://gitee.com/zoujingli/ThinkLibrary
// | github 仓库地址 ：https://github.com/zoujingli/ThinkLibrary
// +----------------------------------------------------------------------

declare(strict_types=1);

use think\admin\Library;
use think\admin\model\SystemBase;

/**
 * 動態加載繁體中文數據字典
 * 從系統數據字典中讀取繁體中文翻譯，並緩存以提高性能
 */
$cacheKey = 'lang-zh-tw';
$langs = Library::$sapp->cache->get($cacheKey, []);

if (empty($langs)) {
    // 從數據字典讀取繁體中文翻譯
    $langs = array_column(SystemBase::items('繁体中文'), 'name', 'code');
    
    // 讀取繁體菜單並合併到語言包中（使用 menus_ 前綴）
    $menuItems = array_column(SystemBase::items('繁体菜单'), 'name', 'code');
    foreach ($menuItems as $key => $name) {
        $langs["menus_{$key}"] = $name;
    }
    
    // 緩存語言包數據，有效期 360 秒
    Library::$sapp->cache->set($cacheKey, $langs, 360);
}

/**
 * 額外語言包配置
 * 包含日期格式、登錄提示、分頁信息等特殊翻譯
 */
$extra = [
    'Y年m月d日 H:i:s' => 'Y年m月d日 H:i:s',
    '请重新登录！' => '登錄授權無效，請重新登錄！',
    '共 %s 条记录，每页显示 %s 条，共 %s 页当前显示第 %s 页。' => '共 %s 條記錄，每頁顯示 %s 條，共 %s 頁當前顯示第 %s 頁。',
];

/**
 * 基礎語言包定義
 * 包含接口提示、存儲引擎、日誌記錄、模塊管理等翻譯
 */
$base = [
    // 接口提示內容
    '数据删除成功！'         => '數據刪除成功！',
    '数据删除失败！'         => '數據刪除失敗！',
    '数据保存成功！'         => '數據保存成功！',
    '数据保存失败！'         => '數據保存失敗！',
    '数据排序成功！'         => '數據排序成功！',
    '列表排序失败！'         => '列表排序失敗！',
    '请求响应异常！'         => '請求響應異常！',
    '请求响应成功！'         => '請求響應成功！',
    '未授权禁止访问！'       => '未授權禁止訪問！',
    '会话无效或已失效！'     => '會話無效或已失效！',
    '表单令牌验证失败！'     => '表單令牌驗證失敗！',
    '接口账号验证失败！'     => '接口賬號驗證失敗！',
    '接口请求时差过大！'     => '接口請求時差過大！',
    '接口签名验证失败！'     => '接口簽名驗證失敗！',
    '非JWT访问！'            => '請使用 JWT 方式訪問！',
    '请求参数 %s 不能为空！' => '請求參數 %s 不能爲空！',
    '接口请求响应格式异常！' => '接口請求響應格式異常！',
    '耗时 %.4f 秒'          => '耗時 %.4f 秒',
    '创建任务失败，%s'       => '創建任務失敗，%s',
    '已创建请等待处理完成！' => '已創建請等待處理完成！',
    '删除%s[%s]及授权配置'  => '刪除%s[%s]及授權配置',
    '暂无轨迹信息~'         => '暫無軌迹信息~',
    
    // 存儲引擎翻譯
    '本地服务器存储'        => '本地服務器存儲',
    '自建Alist存储'         => '自建Alist存儲',
    '又拍云USS存储'         => '又拍雲USS存儲',
    '阿里云OSS存储'         => '阿裏雲OSS存儲',
    '腾讯云COS存储'         => '騰訊雲COS存儲',
    '七牛云对象存储'        => '七牛雲對象存儲',
    '未配置又拍云域名'      => '未配置又拍雲域名',
    '未配置阿里云域名'      => '未配置阿裏雲域名',
    '未配置七牛云域名'      => '未配置七牛雲域名',
    '未配置腾讯云域名'      => '未配置騰訊雲域名',
    '未配置Alist域名'       => '未配置Alist域名',
    
    // 默認日誌翻譯
    '增加%s[%s]成功'        => '增加%s[%s]成功',
    '修改%s[%s]状态'        => '修改%s[%s]狀態',
    '更新%s[%s]记录'        => '更新%s[%s]記錄',
    '删除%s[%s]成功'        => '刪除%s[%s]成功',
    
    // 模塊管理翻譯
    '系统任务管理'          => '系統任務管理',
    '系统菜单管理'          => '系統菜單管理',
    '系统文件管理'          => '系統文件管理',
    '系统用户管理'          => '系統用戶管理',
    '系统日志管理'          => '系統日誌管理',
    '系统参数配置'          => '系統參數配置',
    '访问权限管理'          => '訪問權限管理',
    '数据字典管理'          => '數據字典管理',
    '系统运维管理'          => '系統運維管理',
];

// 合併所有語言包：基礎翻譯 -> 額外配置 -> 動態字典
return array_merge($base, $extra, $langs);